package com.pactera.madp.cp.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.pactera.madp.common.core.util.R;
import com.pactera.madp.cp.api.dto.medium.MediumAddDTO;
import com.pactera.madp.cp.api.dto.medium.MediumUpdateDTO;
import com.pactera.madp.cp.api.entity.medium.MediumEnyity;
import com.pactera.madp.cp.api.vo.ParseLinkArticleVO;
import com.pactera.madp.cp.api.vo.medium.MediumTypeVO;
import com.pactera.madp.cp.api.vo.medium.MediumVO;

import java.util.List;

public interface IMediumService extends IService<MediumEnyity> {

    MediumEnyity getMediumById(Integer id);

    Page getMediumList(String mediumGroupId, String searchStr, Integer type, Page page);

    Page getMediumList1(List<String> mediumGroupIds, String searchStr, Integer type, Page page);

    Page<List<MediumVO>> mediumPage(String mediumGroupId, String searchStr, Integer type, Page page);

    IPage mediumPageWeChat(String searchStr, Integer type, String wxUserId, String mediumGroupId, Page page);

    String addFullPath(String content, Integer type);

    Integer createMedium(MediumEnyity mediumEnyity);

    boolean deleteMedium(Integer id);

    boolean updateMediumById(MediumEnyity mediumEnyity);

    boolean updateMediumByIds(MediumUpdateDTO dto);

    boolean update(MediumUpdateDTO dto);

    MediumVO mediumShow(Integer id);

    Integer updateMediaByGroupId(Integer id, int i);

    List<MediumEnyity> mediumListByDept(Integer id);

    boolean insertAllBatch(MediumAddDTO dto);

    boolean insert(MediumAddDTO dto);

    R insertByGreeting(MediumAddDTO dto);

    boolean insertAllBatchWeChat(MediumAddDTO dto);

    ParseLinkArticleVO  getParseLinkArticle(String url);

    R sendMedium(Integer id);

    Page<List<MediumTypeVO>> mediumPageByType(Integer type, Page page, Integer mediumGroupId, String search);

    void saveMediumMediaId();

    boolean saveMediumMediaIdById(Integer id);

}
